home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / MRAC / Mapping / m-consecutive next >
Lisp/Scheme  |  1998-08-11  |  930b  |  26 lines

  1. m-consecutive symbol-list &rest note-lengths
  2.  
  3. Use this function for 'orchestrating' the items in a symbol list sequentially to players in an ensemble. In the example below a list of is processed against lists of variables containing note-lengths belonging to an ensemble of players. 
  4.  
  5. (setq sym '(a b c d e f g h i j k l))
  6.  
  7. (setq v1-rhy '(1/8 -1/8  2/8 -1/8 5/8))
  8. (setq v2-rhy '(1/8  1/8 -1/8  2/8 1/8))
  9. (setq va-rhy '(-2/8  1/8 -5/8  1/8))
  10. (setq vc-rhy '(-1/8  3/8  1/8  1/8))
  11.  
  12. (setq symbols-to-instument
  13.       (m-consecutive sym v1-rhy v2-rhy va-rhy vc-rhy))
  14. => ((a e i) (b c g j) (f l) (d h k))
  15.  
  16. The output produces a consecutive list of symbol lists which must then be extracted using car or its MRAC option 1~, 2~ etc. 
  17.  
  18. (setq violin1 (1~ symbols-to-instument))
  19. => (a e i)
  20. (setq violin2 (2~ symbols-to-instument))
  21. => (b c g j)
  22. (setq viola (3~ symbols-to-instument))
  23. => (f l)
  24. (setq cello (4~ symbols-to-instument))
  25. => (d h k)
  26.